package cn.hl.hm.logic.service;

import cn.hl.hm.entity.Driver;
import cn.hl.hm.entity.DriverVehicle;
import cn.hl.hm.util.paging.PageInfo;
import cn.hl.hm.vo.DriverDetailVo;
import cn.hl.hm.vo.DriverInfoVo;
import cn.hl.hm.vo.VehicleVo;

import java.sql.SQLDataException;
import java.util.List;

/**
 * created by tarzan on 2017/10/31.
 */
public interface IDriverService {
    public DriverInfoVo getDriverInfo(Integer driverId);

    public List<DriverDetailVo> getDriverPageList(PageInfo pageInfo);

    public List<DriverDetailVo> getDriverPageList(List<Driver> driverList);

    public DriverDetailVo getDriverDetail(Integer driverId,String driverPhone);

    public int updateDriver(Driver driver);

    public List<VehicleVo> getVehicleList(Integer driverId);

    public List<VehicleVo> getVehicleList(List<DriverVehicle> driverVehicleList);

    public Boolean addVehicle(Integer driverId, String plateNumber, Integer vehicleTpyeId, Integer
            vehicleLengthId,String transportLicense, String drivingLicensePic, String
                            drivingLicenseGuaPic, Integer status) throws SQLDataException;

    Boolean updateVehicle(Integer driverId, String plateNumber, Integer vehicleTpyeId, Integer
            vehicleLengthId, String transportLicense, String drivingLicensePic, String drivingLicenseGuaPic,
                          Integer status, String assessorUsername, String driverUnpassReason);

    public Boolean deleteVehicle(Integer driverId, Integer vehicleId);

    public Driver addDriver(Driver driver);

    public int deleteDriver(Integer driverId);

    List<Driver> selectListByIds(List<Integer> ids);

    List<Integer> selectDriverListPage(PageInfo pageInfo);

    List<Integer> selectExistCheckPendingListPage(PageInfo pageInfo);

    public void driverCheckPush(String driverStatus, Driver driver);
}
